With the proliferation of electronics and software as building blocks within automotive and other relatively complex systems, fault tolerance has emerged as a fundamental design requirement. Therefore, it is desirable to develop systems that preserve their functionality in spite of errors in system-level electronics, communications, and/or processing components. Failure of certain electronic components may cause system-level behavior changes. For example, relative to a defective mechanical steering column, a stuck-at-fault condition in a microprocessor adapted for providing electrical signals in a steer-by-wire vehicle system can cause a relatively high variation in output steering torque. Additionally, automotive systems must conform to stringent industry requirements, including specific fault tolerance requirements.
Failure of electrical components in a system may occur due to component defects and age-related degradation. Chips, sensors, power supplies, and electromechanical actuators can fail permanently or transiently, or simply by becoming progressively less precise over time. Additionally, hardware and software bugs can cause transient and permanent failures, which can manifest themselves as errors in the output of a system-level controller, and ultimately in the function of any actuators disposed within the system. Components such as sensors, software blocks, and hardware blocks can introduce sporadic quality faults ranging from a shift in signal trajectory to erroneous transient outputs, which can lead to loss of signal precision.